home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1995-10-23 | 97.5 KB | 1,892 lines
#!---------------------------------------------------------! #! ! #! Copyright 1994, 1995 ToolCraft Development Corporation ! #! ! #! ALL RIGHTS RESERVED ! #! ! #!---------------------------------------------------------! #! #! #!=============================================================================! #! ! #! Page/Loaded List Box Control ! #! ! #!=============================================================================! #CONTROL(BrowseBox,'Browse List Box'),PRIMARY('PowerBrowse Control'),REQ(PowerBrowseLibrary(ToolCraft)),DESCRIPTION('PowerBrowse on ' & %Primary),MULTI CONTROLS LIST,AT(,,100,50),MSG('Browsing Records'),ALRT(CtrlEnter),ALRT(InsertKey),ALRT(DeleteKey),USE(?List),IMM,FROM(BRWQ) END #BUTTON('Browse Box Behavior'),AT(10,,180) #SHEET #TAB('C&onfiguration'),HLP('~PBBrowseBoxConfigurationTab') #PROMPT('Use &Multiple Display Orders',CHECK),%UsingMultiDisplay,AT(10,30,105) #PROMPT('Use &In-Line Data Entry',CHECK),%UsingInLineEntry,AT(10,,85) #PROMPT('Use &View Structure',CHECK),%UsingViewStructure,AT(10,,105) #PROMPT('Double Click &Selects Record On Lookup',CHECK),%EnableSelectRequests,DEFAULT(1),AT(10,,145) #PROMPT('Enable "Hot" &Display Fields',CHECK),%HotDisplay,AT(10,,105) #DISPLAY('') #PREPARE #DECLARE(%SearchFieldRequired) #CLEAR(%SearchFieldRequired) #IF(%UsingMultiDisplay) #FOR(%AltFormats),WHERE(%AltLocatorType = 'Entry' OR %AltLocatorTYpe = 'Both' OR %AltLocatorType = 'Incremental') #SET(%SearchFieldRequired,1) #ENDFOR #ELSIF(%LocatorType = 'Entry' OR %LocatorTYpe = 'Both' OR %LocatorType = 'Incremental') #SET(%SearchFieldRequired,1) #ENDIF #ENDPREPARE #ENABLE(%SearchFieldRequired),CLEAR #PROMPT('Search Input Field:',FROM(%Control,%ControlType = 'ENTRY' AND SUB(%ControlTemplate,1,11,) = 'SearchEntry' AND INSTRING('(ToolCraft)',%ControlTemplate,1,1))),%LocatorControl #VALIDATE(%LocatorControl,'You Must Select a Search Input Field') #ENDENABLE #DISPLAY('') #PROMPT('Update Procedure:',PROCEDURE),%UpdateProcedure #DISPLAY('') #PROMPT('List Box &Relationship:',DROP('None|Parent|Child|Both')),%RelationToListBoxes,DEFAULT('None') #PREPARE #IF(%RelationToListBoxes = 'None' OR %RelationToListBoxes = 'Parent') #CLEAR(%ParentListControl) #ENDIF #ENDPREPARE #BOXED,WHERE(%RelationToListBoxes = 'Child' OR %RelationToListBoxes = 'Both') #PROMPT('Name of Parent List Box:',FROM(%Control,%ControlTemplate = 'BrowseBox(ToolCraft)' AND %ControlInstance <> %ActiveTemplateInstance)),%ParentListControl,AT(97,148,87,10),PROMPTAT(10,148,87,10) #VALIDATE(%ParentListControl,'You Must Select a Parent List Box') #ENDBOXED #ENDTAB #TAB('&Display Setup'),WHERE(NOT %UsingMultiDisplay),HLP('~PBBrowseBoxDisplaySetupTab') #PROMPT('Key Display &Order:',DROP('Normal|Reverse')),%KeyDisplayOrder,DEFAULT('Normal'),AT(,30),PROMPTAT(,30) #PROMPT('&Locator:',DROP('None|Step|Entry|Both|Incremental')),%LocatorType,DEFAULT('Step'),AT(,45),PROMPTAT(,45) #PROMPT('&Record Filter:',@S180),%RecordFilter,AT(,60),PROMPTAT(,60) #PROMPT('Range Limit &Field:',COMPONENT(%PrimaryKey)),%RangeField,AT(,75),PROMPTAT(,75) #ENABLE(%RangeField) #PROMPT('Range Limit &Type:',DROP('Current Value|Single Value|Range of Values|File Relationship')),%RangeLimitType,DEFAULT('Current Value') #BOXED,WHERE(%RangeLimitType='Single Value') #PROMPT('&Range Limit Value:',@s100),%RangeLimit,AT(97,102,87,10),PROMPTAT(10,102,87,10) #ENDBOXED #BOXED,WHERE(%RangeLimitType='Range of Values') #PROMPT('&Low Limit Value:',@S100),%RangeLow,AT(97,102,87,10),PROMPTAT(10,102,87,10) #PROMPT('&High Limit Value:',@S100),%RangeHigh,AT(97,115,87,10),PROMPTAT(10,115,87,10) #ENDBOXED #BOXED,WHERE(%RangeLimitType='File Relationship') #PROMPT('&Related File:',FILE),%RangeFile,AT(97,102,87,10),PROMPTAT(10,102,87,10) #ENDBOXED #ENDENABLE #BUTTON('Vertical Scroll Bar Behavior'),HLP('~PBScrollBarOptions'),AT(,131,176) #PROMPT('Scroll Bar Behavior:',DROP('Fixed Thumb|Movable Thumb')),%ScrollBehavior,DEFAULT('Fixed Thumb') #ENABLE(%ScrollBehavior='Movable Thumb') #PROMPT('Key Distribution:',DROP('Alpha|Last Names|Numeric Range|Date Range|Custom|Other')),%ScrollKeyDistribution,DEFAULT('Alpha') #BOXED,WHERE(%ScrollKeyDistribution='Custom') #BUTTON('Custom Key Distribution'),MULTI(%CustomKeyDistribution,%KeyDistributionValue),AT(10,35,180),HLP('~PBScrollBehaviorCustomKeyDistribution') #PROMPT('Key Value:',@S10),%KeyDistributionValue #ENDBUTTON #ENDBOXED #BOXED,WHERE(%ScrollKeyDistribution='Numeric Range') #PROMPT('From Value:',@S20),%KeyArrayFromValue,AT(100,35,90,10),PROMPTAT(10,35,90,10) #PROMPT('Thru Value:',@S20),%KeyArrayThruValue,AT(100,47,90,10),PROMPTAT(10,47,90,10) #ENDBOXED #BOXED,WHERE(%ScrollKeyDistribution='Date Range') #PROMPT('From Date:',@D2),%KeyArrayFromDate,AT(100,35,90,10),PROMPTAT(10,35,90,10) #PROMPT('Thru Date:',@D2),%KeyArrayThruDate,AT(100,47,90,10),PROMPTAT(10,47,90,10) #ENDBOXED #BOXED,WHERE(%ScrollKeyDistribution='Other') #PROMPT('Key Array Name:',@S40),%KeyArrayName,AT(100,35,90,10),PROMPTAT(10,35,90,10) #ENDBOXED #ENDENABLE #ENDBUTTON #ENDTAB #TAB('&Display Orders'),WHERE(%UsingMultiDisplay),HLP('~PBBrowseBoxDisplayOrdersTab') #BUTTON('Display Setup'),MULTI(%AltFormats,%OrderDescription),AT(,30),HLP('~PBMultiDisplayOrders'),INLINE #PROMPT('Order &Description:',@S60),%OrderDescription #VALIDATE(%OrderDescription,'You Must Enter an Order Description') #PROMPT('&Key Name:',KEY),%OrderKey #VALIDATE(%OrderKey,'You Must Select a Key Name') #PROMPT('Key Display &Order:',DROP('Normal|Reverse')),%AltKeyDisplayOrder,DEFAULT('Normal') #PROMPT('',CHECK),%UseAltListBox,PROMPTAT(17,46,0,0),AT(10,46,8) #ENABLE(%UseAltListBox),CLEAR #PROMPT('&Alternate List &Format:',FROM(%Control,%ControlTemplate = 'AlternateListFormat(ToolCraft)')),%AltListBox,PROMPTAT(22,46,75),AT(100,46) #VALIDATE(%AltListBox,'You Must Select an Alternate List Format Control') #ENDENABLE #DISPLAY(''),AT(,54) #PROMPT('&Locator:',DROP('None|Step|Entry|Both|Incremental')),%AltLocatorType,DEFAULT('Step') #ENABLE(%AltLocatorType = 'Entry' OR %AltLocatorType = 'Both' OR %AltLocatorType = 'Incremental') #PROMPT('Search Field &Picture:',@S30),%AltSearchEntryPicture #VALIDATE(%AltSearchEntryPicture,'You Must Enter a Picture for the Search Field') #ENDENABLE #DISPLAY(''),AT(,84) #PROMPT('&Record Filter:',@S180),%AltRecordFilter #PROMPT('Range Limit &Field:',COMPONENT(%OrderKey)),%AltRangeField #ENABLE(%AltRangeField) #PROMPT('Range Limit &Type:',DROP('Current Value|Single Value|Range of Values|File Relationship')),%AltRangeLimitType,DEFAULT('Current Value') #BOXED,WHERE(%AltRangeLimitType='Single Value') #PROMPT('Range Limit Value:',@s100),%AltRangeLimit,AT(100,134,90,10),PROMPTAT(10,134,90,10) #ENDBOXED #BOXED,WHERE(%AltRangeLimitType='Range of Values') #PROMPT('Low Limit Value:',@S100),%AltRangeLow,AT(100,134,90,10),PROMPTAT(10,134,90,10) #PROMPT('High Limit Value:',@S100),%AltRangeHigh,AT(100,147,90,10),PROMPTAT(10,147,90,10) #ENDBOXED #BOXED,WHERE(%AltRangeLimitType='File Relationship') #PROMPT('Related File:',FILE),%AltRangeFile,AT(100,134,90,10),PROMPTAT(10,134,90,10) #ENDBOXED #ENDENABLE #BUTTON('Vertical Scroll Bar Behavior'),HLP('~PBScrollBarOptions'),AT(,164,180) #PROMPT('Scroll Bar Behavior:',DROP('Fixed Thumb|Movable Thumb')),%AltScrollBehavior,DEFAULT('Fixed Thumb') #ENABLE(%AltScrollBehavior='Movable Thumb') #PROMPT('Key Distribution:',DROP('Alpha|Last Names|Numeric Range|Date Range|Custom|Other')),%AltScrollKeyDistribution,DEFAULT('Alpha') #BOXED,WHERE(%AltScrollKeyDistribution='Custom') #BUTTON('Custom Key Distribution'),MULTI(%AltCustomKeyDistribution,%AltKeyDistributionValue),AT(10,35,180),HLP('~PBScrollBehaviorCustomKeyDistribution') #PROMPT('Key Value:',@S10),%AltKeyDistributionValue #ENDBUTTON #ENDBOXED #BOXED,WHERE(%AltScrollKeyDistribution='Numeric Range') #PROMPT('From Value:',@S20),%AltKeyArrayFromValue,AT(100,35,90,10),PROMPTAT(10,35,90,10) #PROMPT('Thru Value:',@S20),%AltKeyArrayThruValue,AT(100,47,90,10),PROMPTAT(10,47,90,10) #ENDBOXED #BOXED,WHERE(%AltScrollKeyDistribution='Date Range') #PROMPT('From Date:',@D2),%AltKeyArrayFromDate,AT(100,35,90,10),PROMPTAT(10,35,90,10) #PROMPT('Thru Date:',@D2),%AltKeyArrayThruDate,AT(100,47,90,10),PROMPTAT(10,47,90,10) #ENDBOXED #BOXED,WHERE(%AltScrollKeyDistribution='Other') #PROMPT('Key Array Name:',@S40),%AltKeyArrayName,AT(100,35,90,10),PROMPTAT(10,35,90,10) #ENDBOXED #ENDENABLE #ENDBUTTON #ENDBUTTON #PROMPT('Change Order Control:',FROM(%Control,%ControlType <> 'PROMPT' AND %ControlType <> 'TAB' AND SUB(%ControlTemplate,1,5) = 'Order' AND INSTRING('(ToolCraft)',%ControlTemplate,1,1))),%ChangeOrderControl,AT(,140),PROMPTAT(,140) #VALIDATE(%ChangeOrderControl,'You Must Select A Change Order Control') #ENDTAB #TAB('In-Line &Fields'),WHERE(NOT %UsingInLineEntry),HLP('~PBBrowseBoxInLineFieldsTab') #DISPLAY('In-Line editing is not enabled. To use in-line editing'),AT(,30) #DISPLAY('you must first check the "Use In-Line Data Entry" option') #DISPLAY('from the Configuration properties page. After you') #DISPLAY('complete this step you a will be able to setup in-line') #DISPLAY('editing from this page.') #ENDTAB #TAB('In-Line &Fields'),WHERE(%UsingInLineEntry),HLP('~PBBrowseBoxInLineFieldsTab') #BUTTON('In-Line Fields'),MULTI(%InLineInstance,%InLineField),AT(,30),HLP('~PBInLineEntryFields'),INLINE #PROMPT('&Field Name:',FIELD),%InLineField,PROMPTAT(5,6,45),AT(55,6) #VALIDATE(%InLineField,'You Must Enter a Field Name') #PROMPT('Field &Type:',DROP('Entry|Spin Box|Drop List|Drop Combo')),%InLineFieldType,DEFAULT('Entry'),PROMPTAT(5,18,45),AT(55,18) #VALIDATE(%InLineFieldType,'You Must Select a Field Type') #PROMPT('Initial &Value:',@S255),%InLineInitialValue,PROMPTAT(5,30,45),AT(55,30) #PROMPT('P&icture:',@S30),%InLinePicture,PROMPTAT(5,45,45),AT(55,45) #PROMPT('&Justification:',DROP('None|Left Justified|Right Justified|Centered|Decimal')),%InLinePropJustification,DEFAULT('None'),PROMPTAT(5,62,45),AT(55,62,70) #PROMPT('&Offset:',@N3),%InLinePropOffset,PROMPTAT(150,62,24),AT(175,62,20) #PROMPT('He&lp ID:',@S160),%InLinePropHlp,PROMPTAT(5,74,45),AT(55,74,140) #PROMPT('Messa&ge:',@S255),%InLinePropMsg,PROMPTAT(5,86,45),AT(55,86,140) #BOXED('Case'),WHERE(%InLineFieldType='Entry' OR %InLineFieldType='Spin Box'),AT(5,100,60,50) #PROMPT('',OPTION),%InLinePropCase,DEFAULT('Norm') #PROMPT('&Norm',RADIO),PROMPTAT(15,111,45),AT(10,111,50) #PROMPT('Capitali&ze',RADIO),PROMPTAT(15,124,45),AT(10,124,50) #PROMPT('Upp&er Case',RADIO),PROMPTAT(15,137,45),AT(10,137,50) #ENDBOXED #BOXED('Options'),WHERE(%InLineFieldType='Entry'),AT(70,100,105,50) #ENDBOXED #BOXED('Options'),WHERE(%InLineFieldType='Spin Box'),AT(70,100,55,50) #ENDBOXED #BOXED,WHERE(%InLineFieldType='Entry' OR %InLineFieldType='Spin Box') #PROMPT('&Required',CHECK),%InLinePropReq,PROMPTAT(80,111,45),AT(75,111,45) #PROMPT('I&mmediate',CHECK),%InLinePropImm,PROMPTAT(80,124,45),AT(75,124,45) #PROMPT('Read Onl&y',CHECK),%InLinePropReadOnly,PROMPTAT(80,137,45),AT(75,137,45) #ENDBOXED #BOXED,WHERE(%InLineFieldType='Entry') #PROMPT('Pass&word',CHECK),%InLinePropPassword,PROMPTAT(130,111,45),AT(125,111,45) #PROMPT('&Skip',CHECK),%InLinePropSkip,PROMPTAT(130,124,30),AT(125,124,30) #ENDBOXED #BOXED('Entry Mode'),WHERE(%InLineFieldType='Entry'),AT(180,100,65,50) #PROMPT('',OPTION),%InLinePropEntryMode,DEFAULT('As is') #PROMPT('A&s is',RADIO),PROMPTAT(15,111,45),AT(10,111,35) #!PROMPTAT(190,111,45),AT(185,111,35) #PROMPT('Inser&t',RADIO),PROMPTAT(15,124,45),AT(10,124,40) #!PROMPTAT(190,124,45),AT(185,124,40) #PROMPT('O&verwrite',RADIO),PROMPTAT(15,137,45),AT(10,137,45) #!PROMPTAT(190,137,45),AT(185,137,45) #ENDBOXED #BOXED('Range'),WHERE(%InLineFieldType='Spin Box'),AT(130,100,65,50) #PROMPT('&Upper:',@S30),%InLinePropRangeHigh,PROMPTAT(10,111,25),AT(35,111,30) #!PROMPTAT(135,111,25),AT(160,111,30) #PROMPT('Lo&wer:',@S30),%InLinePropRangeLow,PROMPTAT(10,124,25),AT(35,124,30) #!PROMPTAT(135,124,25),AT(160,124,30) #PROMPT('S&tep:',@S30),%InLinePropStep,PROMPTAT(10,137,25),AT(35,137,30) #!PROMPTAT(135,137,25),AT(160,137,30) #ENDBOXED #BOXED('Scroll bars'),WHERE(%InLineFieldType='Drop List' OR %InLineFieldType='Drop Combo'),AT(5,100,52,50) #PROMPT('Hori&zontal',CHECK),%InLinePropHScroll,PROMPTAT(15,111,45),AT(10,111,45) #PROMPT('&Vertical',CHECK),%InLinePropVScroll,PROMPTAT(15,124,45),AT(10,124,40) #ENDBOXED #BOXED('List Box Setup'),WHERE(%InLineFieldType='Drop List' OR %InLineFieldType='Drop Combo'),AT(62,100,133,50) #PROMPT('&Drop:',@N3),%InLinePropDrop,DEFAULT(4),PROMPTAT(10,111,22),AT(38,111,20) #!PROMPTAT(67,111,22),AT(95,111,20) #VALIDATE(%InLinePropDrop,'You Must Enter a Drop Value') #PROMPT('F&rom:',@S255),%InLinePropFrom,PROMPTAT(10,124,25),AT(38,124,95) #!PROMPTAT(67,124,25),AT(95,124,95) #VALIDATE(%InLinePropFrom,'You Must Enter a String or Queue Name to Build List From') #PROMPT('&Format:',FORMAT),%InLinePropFormat,PROMPTAT(10,137,25),AT(38,137,95) #!PROMPTAT(67,137,25),AT(95,137,95) #VALIDATE(%InLinePropFormat,'You Must Define the List Box Format') #ENDBOXED #ENDBUTTON #BUTTON('In-Line Options'),HLP('~PBInLineEntryOptions'),AT(,140,176) #BOXED('Type of Updates Allowed') #PROMPT('Inserts',CHECK),%InLineInsertAllowed,DEFAULT(1),AT(10,17,35) #PROMPT('Changes',CHECK),%InLineChangeAllowed,DEFAULT(1),AT(70,17,40) #PROMPT('Deletes',CHECK),%InLineDeleteAllowed,DEFAULT(1),AT(130,17,40) #ENDBOXED #BOXED('Update Behavior Setup') #ENABLE(%InLineInsertAllowed) #PROMPT('&Point Bar Location on Insert:',DROP('Top of List|Bottom of List|Current Position')),%InLineInsertMode,DEFAULT('Top of List'),PROMPTAT(,,100),AT(118,,73) #ENDENABLE #ENABLE(%InLineDeleteAllowed) #PROMPT('When Called for &Delete:',DROP('Standard Warning|Automatic Delete')),%InLineActionOnDelete,DEFAULT('Standard Warning'),PROMPTAT(,,100),AT(118,,73) #ENDENABLE #ENDBOXED #BOXED('Key and Button Setup'),AT(,,255) #PROMPT('&Cancel Key:',@S20),%InLineAbortKey,DEFAULT('EscKey'),PROMPTAT(10,88,45),AT(55,88,55) #PROMPT('',CHECK),%InLineUseAbortButton,PROMPTAT(120,88,0,0),AT(118,88,8) #ENABLE(%InLineUseAbortButton) #PROMPT('Cancel Button:',FROM(%Control,%ControlType = 'BUTTON')),%InLineAbortButton,PROMPTAT(126,88,50),AT(179,88,75) #VALIDATE(%InLineAbortButton,'Must Select A Button') #PROMPT('Button Text:',@S50),%InLineAbortButtonText,PROMPTAT(126,102,45),AT(179,102,75) #ENDENABLE #PROMPT('&Save Key:',@S20),%InLineSaveKey,DEFAULT('CtrlEnter'),PROMPTAT(10,122,45),AT(55,122,55) #PROMPT('',CHECK),%InLineUseSaveButton,PROMPTAT(120,122,0,0),AT(118,122,8) #ENABLE(%InLineUseSaveButton) #PROMPT('Save Button:',FROM(%Control,%ControlType = 'BUTTON')),%InLineSaveButton,PROMPTAT(126,122,45),AT(179,122,75) #VALIDATE(%InLineSaveButton,'Must Select A Button') #PROMPT('Button Text:',@S50),%InLineSaveButtonText,PROMPTAT(126,136,45),AT(179,136,75) #ENDENABLE #PROMPT('Enable Batch Entry of Records',CHECK),%InLineUseBatchEntry,PROMPTAT(20,156,110),AT(10,156,110) #ENABLE(%InLineUseBatchEntry) #PROMPT('Batch Button:',FROM(%Control,%ControlType = 'BUTTON')),%InLineBatchButton,PROMPTAT(126,156,45),AT(179,156,75) #ENDENABLE #PROMPT('Enable Editing of Next/Previous Records by Column',CHECK),%InLineUseColumnEdit,DEFAULT(0),PROMPTAT(20,176,185),AT(10,176,185) #ENABLE(%InLineUseColumnEdit) #PROMPT('Next Record Keys:',@S20),%InLineEditNextKey1,DEFAULT('DownKey'),PROMPTAT(18,190,70),AT(100,190,55) #PROMPT('Alt Key:',@S20),%InLineEditNextKey2,PROMPTAT(167,190,30),AT(198,190,55) #PROMPT('Previous Record Keys:',@S20),%InLineEditPrevKey1,DEFAULT('UpKey'),PROMPTAT(18,204,75),AT(100,204,55) #PROMPT('Alt Key:',@S20),%InLineEditPrevKey2,PROMPTAT(167,204,30),AT(198,204,55) #ENDENABLE #ENDBOXED #ENDBUTTON #ENDTAB #TAB('&View'),WHERE(NOT %UsingViewStructure),HLP('~PBBrowseBoxViewTab') #DISPLAY('Use of a view structure for this browse has not been'),AT(,30) #DISPLAY('enabled. To have the browse use a view you must first') #DISPLAY('check the "Use View Structure" option from the') #DISPLAY('Configuration properties page. After you complete this') #DISPLAY('step you will be able to change view properties from') #DISPLAY('this page.') #ENDTAB #TAB('&View'),WHERE(%UsingViewStructure),HLP('~PBBrowseBoxViewTab') #PROMPT('&Filter:',@S180),%ViewStructureFilter,PROMPTAT(10,30,25),AT(30,30,153) #DISPLAY('"Hot" Fields:'),AT(,45) #BUTTON('"Hot" Fields'),MULTI(%HotFields,%HotField & SUB(' (BIND)',1,7*%HotFieldBound)),HLP('~PBViewHotFields'),INLINE,AT(,,,85) #PROMPT('Hot Field:',FIELD),%HotField #VALIDATE(%HotField,'You Must Select a Hot Field') #PROMPT('BIND Field:',CHECK),%HotFieldBound #ENDBUTTON #ENDTAB #PREPARE #FIND(%ControlInstance,%ActiveTemplateInstance,%Control) #ENDPREPARE #TAB('&Colors'),WHERE(NOT %ControlHasColor),HLP('~PBBrowseBoxColorsTab') #DISPLAY('No color options were checked in the list box formatter.'),AT(,30) #DISPLAY('To enable colors in a list box you must first check the') #DISPLAY('color option for each field that will use coloring.') #DISPLAY('After you complete this step you a will be able to set the') #DISPLAY('color properties for each field from this page.') #ENDTAB #TAB('&Colors'),WHERE(%ControlHasColor = %True),HLP('~PBBrowseBoxColorsTab') #PREPARE #FIND(%ControlInstance,%ActiveTemplateInstance,%Control) #ENDPREPARE #BUTTON('Customize Colors'),FROM(%ControlField,%ControlField),AT(,30),HLP('~PBCustomizeColors'),INLINE,WHERE(%ControlFieldHasColor) #PREPARE #FIND(%ControlInstance,%ActiveTemplateInstance,%Control) #ENDPREPARE #BOXED('Default Colors') #PROMPT('&Foreground Normal:',COLOR),%ControlFieldForegroundNormal,DEFAULT(-1) #PROMPT('&Background Normal:',COLOR),%ControlFieldBackgroundNormal,DEFAULT(-1) #PROMPT('&Foreground Selected:',COLOR),%ControlFieldForegroundSelected,DEFAULT(-1) #PROMPT('&Background Selected:',COLOR),%ControlFieldBackgroundSelected,DEFAULT(-1) #ENDBOXED #BOXED('Conditional Color Assignments') #BUTTON('Conditional Color Assignments'),MULTI(%ConditionalColors,%ColorCondition),INLINE,HLP('~PBConditionalColors') #PROMPT('&Condition:',@S255),%ColorCondition #PROMPT('&Foreground Normal:',COLOR),%ConditionalControlFieldForegroundNormal,DEFAULT(-1) #PROMPT('&Background Normal:',COLOR),%ConditionalControlFieldBackgroundNormal,DEFAULT(-1) #PROMPT('&Foreground Selected:',COLOR),%ConditionalControlFieldForegroundSelected,DEFAULT(-1) #PROMPT('&Background Selected:',COLOR),%ConditionalControlFieldBackgroundSelected,DEFAULT(-1) #ENDBUTTON #ENDBOXED #ENABLE(%UsingMultiDisplay) #PROMPT('Apply Color Settings for this Field to ALL Display Orders',CHECK),%StandardColorScheme,DEFAULT(0),AT(5,,185) #ENDENABLE #ENDBUTTON #ENDTAB #PREPARE #FIND(%ControlInstance,%ActiveTemplateInstance,%Control) #ENDPREPARE #TAB('&Icons'),WHERE(NOT %ControlHasIcon),HLP('~PBBrowseBoxIconsTab') #DISPLAY('No icons fields were defined in the list box formatter.'),AT(,30) #DISPLAY('To define an icon in a list box you must first check the') #DISPLAY('icon option for each field that will display an icon.') #DISPLAY('After you complete this step you a will be able to set the') #DISPLAY('icon properties for each field from this page.') #ENDTAB #TAB('&Icons'),WHERE(%ControlHasIcon = %True),HLP('~PBBrowseBoxIconsTab') #PREPARE #FIND(%ControlInstance,%ActiveTemplateInstance,%Control) #ENDPREPARE #BUTTON('&Customize Icons'),FROM(%ControlField,%ControlField & ' - ' & %ControlFieldIcon),AT(,30),HLP('~PBCustomizeIcons'),INLINE,WHERE(%ControlFieldHasIcon) #PREPARE #FIND(%ControlInstance,%ActiveTemplateInstance,%Control) #ENDPREPARE #BOXED('Default Icon') #PROMPT('Icon:',@S40),%ControlFieldIcon #ENDBOXED #BOXED('Conditional Icon Usage') #BUTTON('&Conditional Icon Usage'),MULTI(%ConditionalIcons,%IconCondition),INLINE,HLP('~PBConditionalIcons') #PROMPT('&Condition:',@S255),%IconCondition #PROMPT('Icon:',@S40),%ConditionalControlFieldIcon #ENDBUTTON #ENDBOXED #ENABLE(%UsingMultiDisplay) #PROMPT('Apply Icon Settings for this Field to ALL Display Orders',CHECK),%StandardIconScheme,DEFAULT(0),AT(5,,185) #ENDENABLE #ENDBUTTON #ENDTAB #TAB('&Totals'),HLP('~PBBrowseBoxTotalsTab') #BUTTON('Totals'),MULTI(%BrowseTotals,%BrowseTotalTarget & ' (' & %BrowseTotalType & ')'),AT(,30),HLP('~PBBrowseTotals'),INLINE #PROMPT('Total Target Field:',FIELD),%BrowseTotalTarget,REQ #PROMPT('Total Type:',DROP('Count|Sum|Average')),%BrowseTotalType #ENABLE(%BrowseTotalType <> 'Count'),CLEAR #PROMPT('Field To Total:',FIELD),%BrowseTotalField,REQ #ENDENABLE #PROMPT('Total Based On:',DROP('Each Record Read|Specified Condition')),%BrowseTotalBasedOn #ENABLE(%BrowseTotalBasedOn = 'Specified Condition'),CLEAR #PROMPT('Total Condition:',@S255),%BrowseTotalCondition,REQ #ENDENABLE #ENDBUTTON #ENABLE(ITEMS(%BrowseTotals)) #PROMPT('Display Hour &Glass while Totaling',CHECK),%DisplayHourGlassOnTotals,AT(10,140,125),PROMPTAT(,140) #ENDENABLE #ENDTAB #ENDSHEET #ENDBUTTON #CLASS('Format Browse','Format a variable in the ' & %ActiveTemplateInstanceDescription) #! #! #! #!------------------------------------------------------------------------- #ATSTART #DECLARE(%UsingDropCombo) #SET(%UsingDropCombo,0) #DECLARE(%CmtPos) #SET(%CmtPos,65) #COMMENT(%CmtPos) #INSERT(%FileControlInitialize(Clarion)) #INSERT(%BrowseBoxControlInitialize) #INSERT(%BuildQueueFieldList) #INSERT(%SetupLocator) #INSERT(%SetupSingleDisplay) #INSERT(%SetupMultiDisplay) #INSERT(%SetupInLineFieldOrders) #INSERT(%BuildColorConstruct) #INSERT(%BuildIconConstruct) #ENDAT #!------------------------------------------------------------------------- #AT(%CustomGlobalDeclarations) #INSERT(%FileControlSetFlags(Clarion)) #ENDAT #!------------------------------------------------------------------------- #AT(%SetIconListProperties),WHERE(%ListBoxHasIcon) #INSERT(%AddAllIconsForControl) #ENDAT #!------------------------------------------------------------------------- #AT(%SaveFieldsForRangeFilter) #INSERT(%GenerateSaveVars) #ENDAT #!------------------------------------------------------------------------- #AT(%ProcedureSetup) #INSERT(%InitializeSaveVars) #ENDAT #!------------------------------------------------------------------------- #AT(%HideListBoxControlsBeforeAccept),WHERE(NOT %ToolCraftNoDelayedDisplay) HIDE(%ListControl) #<!Delay Display of List Box #ENDAT #!------------------------------------------------------------------------- #AT(%PostWindowEventHandling,'OpenWindow'),WHERE(NOT %ToolCraftNoDelayedDisplay) UNHIDE(%ListControl) #<!Unhide Filled List Box #ENDAT #!------------------------------------------------------------------------- #AT(%RedisplayChildListBoxes,%ParentListControl) #IF(%RelationToListBoxes = 'Child' OR %RelationToListBoxes = 'Both') IF TC_PROP:BRW(%ListControl,TCPROP:Initialized) #<! If Browse is Initialized TC_PROP:BRW(%ListControl,TCPROP:Action,0) #<! Tell Browse to Redisplay #IF(%RelationToListBoxes = 'Child') TC_PROP:BRW(%ListControl,TCPROP:DontSelect,1) #<! Tell Browse not to Select the List Box #ENDIF END #<! End If #IF(%UsingBrowseTotals) DO BrowseInitTotals:%BrwLbl #<! Initialize Totals for the Browse #ENDIF DO BrowseList:%BrwLbl #<! Call Browse Routine for the List Box #ENDIF #IF(%RelationToListBoxes = 'Both') SELECT(%ParentListControl) #<! Reselect Parent List Box #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%MultiSortOrderDeclarations) #INSERT(%BuildFormatStrings) #IF(%UsingMultiDisplay) #SET(%ValueConstruct,%SrtPfx & ':SortOrder') %[20]ValueConstruct BYTE #<!Current Sort Order for the List Box %[20]SortOrderQueue QUEUE,PRE(%SrtPfx) #<!Queue Use to Store Sort Order Info #SET(%ValueConstruct,'OrderName') %[22]ValueConstruct STRING(60) #<! Description shown in drop box #SET(%ValueConstruct,'SearchPicture') %[22]ValueConstruct STRING(30) #<! Picture Clause for Search Field #SET(%ValueConstruct,'OrderFormat') %[22]ValueConstruct STRING(500) #<! Format String for the List Box %[20]Null END #<!End Queue Declaration #ENDIF #IF(%UsingAltMovableThumb) #FOR(%AltFormats),WHERE(%AltScrollBehavior='Movable Thumb') #CASE(%AltScrollKeyDistribution) #OF('Numeric Range') #SELECT(%AltThumbLocatorField,INSTANCE(%AltFormats)) #IF(%AltKeyArrayThruValue < %AltKeyArrayFromValue) #SET(%AltKeyArrayThruValue,%AltKeyArrayFromValue) #ENDIF #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':KeyValue' & INSTANCE(%AltFormats)) %[20]ValueConstruct LIKE(%AltThumbLocatorField) #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':RangeFrom' & INSTANCE(%AltFormats)) %[20]ValueConstruct EQUATE(%AltKeyArrayFromValue) #SET(%ValueConstruct,%AltKeyArrayThruValue - %AltKeyArrayFromValue + 1) #SET(%ArrayRangeStep,%ValueConstruct / 100) #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':RangeStep' & INSTANCE(%AltFormats)) %[20]ValueConstruct EQUATE(%ArrayRangeStep) #OF('Date Range') #SELECT(%AltThumbLocatorField,INSTANCE(%AltFormats)) #IF(%AltKeyArrayThruDate < %AltKeyArrayFromDate) #SET(%AltKeyArrayThruDate,%AltKeyArrayFromDate) #ENDIF #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':KeyValue' & INSTANCE(%AltFormats)) %[20]ValueConstruct LIKE(%AltThumbLocatorField) #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':RangeFrom' & INSTANCE(%AltFormats)) %[20]ValueConstruct EQUATE(%AltKeyArrayFromDate) #SET(%ValueConstruct,%AltKeyArrayThruDate - %AltKeyArrayFromDate + 1) #SET(%ArrayRangeStep,%ValueConstruct / 100) #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':RangeStep' & INSTANCE(%AltFormats)) %[20]ValueConstruct EQUATE(%ArrayRangeStep) #OF('Custom') #CLEAR(%CustomSize) #CLEAR(%CustomStrLen) #FOR(%AltCustomKeyDistribution) #IF(%CustomSize < LEN(CLIP(%AltKeyDistributionValue))) #SET(%CustomSize,LEN(CLIP(%AltKeyDistributionValue))) #ENDIF #ENDFOR #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':Custom' & INSTANCE(%AltFormats)) %[20]ValueConstruct STRING('%| #FOR(%AltCustomKeyDistribution) #IF(%CustomStrLen => 60) %SnglQuote | &'%| #CLEAR(%CustomStrLen) #ENDIF #SET(%CustomStrLen,%CustomStrLen + %CustomSize) %[%CustomSize]AltKeyDistributionValue%| #ENDFOR %SnglQuote) #SET(%ArrayOverField,'SORT:' & %BrwLbl & ':Custom' & INSTANCE(%AltFormats)) #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':Custom' & INSTANCE(%AltFormats) & ':Array') #SET(%ArrayDimSize,ITEMS(%AltCustomKeyDistribution)) %[20]ValueConstruct STRING(%CustomSize),DIM(%ArrayDimSize),OVER(%ArrayOverField) #ENDCASE #ENDFOR #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%EnableSaveButtons,%ParentListControl),WHERE(%Control=%ParentListControl AND NOT EXTRACT(%ControlStatement,'DISABLE')) #FOR(%Control),WHERE(%Control=%ParentListControl AND NOT EXTRACT(%ControlStatement,'DISABLE')) ENABLE(%ListControl) #<! Enable Child List Box #ENDFOR #FOR(%Control),WHERE(%Control=%ListControl AND NOT EXTRACT(%ControlStatement,'DISABLE')) #EMBED(%EnableInsertButton,''),%Control,HIDE #ENDFOR #ENDAT #!------------------------------------------------------------------------- #AT(%DisableSaveButtons,%ParentListControl),WHERE(%RelationToListBoxes = 'Child' OR %RelationToListBoxes = 'Both') #FOR(%Control),WHERE(%Control=%ParentListControl AND NOT EXTRACT(%ControlStatement,'DISABLE')) DISABLE(%ListControl) #<! Disable Child List Box #ENDFOR #FOR(%Control),WHERE(%Control=%ListControl AND NOT EXTRACT(%ControlStatement,'DISABLE')) #EMBED(%DisableInsertButton,''),%Control,HIDE #ENDFOR #ENDAT #!------------------------------------------------------------------------- #AT(%HotListBoxDisplaySection) #ADD(%ListBoxControls,%ListControl) #SET(%ListBoxNum,%BrwLbl) #IF(%RelationToListBoxes = 'Child' OR %RelationToListBoxes = 'Both') #ADD(%HotListBoxParent,%ParentListControl) #ADD(%HotListBoxChild,%ListControl) #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%BrowseTotalVariables) #IF(%UsingBrowseTotals) #FOR(%BrowseTotals) #CASE(%BrowseTotalType) #OF('Count') #SET(%ValueConstruct,%BrowseTotalTarget & ':Cnt') %[20]ValueConstruct LONG #OF('Sum') #SET(%ValueConstruct,%BrowseTotalTarget & ':Sum') %[20]ValueConstruct LIKE(%BrowseTotalTarget) #OF('Average') #SET(%ValueConstruct,%BrowseTotalTarget & ':Cnt') %[20]ValueConstruct LONG #SET(%ValueConstruct,%BrowseTotalTarget & ':Sum') %[20]ValueConstruct LIKE(%BrowseTotalTarget) #SET(%ValueConstruct,%BrowseTotalTarget & ':Avg') %[20]ValueConstruct LIKE(%BrowseTotalTarget) #ENDCASE #ENDFOR #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%DataSectionBeforeWindow) #IF(NOT %UsingMultiDisplay) #IF(%ScrollBehavior='Movable Thumb') #CASE(%ScrollKeyDistribution) #OF('Numeric Range') #IF(%KeyArrayThruValue < %KeyArrayFromValue) #SET(%KeyArrayThruValue,%KeyArrayFromValue) #ENDIF #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':KeyValue') %[20]ValueConstruct LIKE(%ThumbLocatorField) #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':RangeFrom') %[20]ValueConstruct EQUATE(%KeyArrayFromValue) #SET(%ValueConstruct,%KeyArrayThruValue - %KeyArrayFromValue + 1) #SET(%ArrayRangeStep,%ValueConstruct / 100) #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':RangeStep') %[20]ValueConstruct EQUATE(%ArrayRangeStep) #OF('Date Range') #IF(%KeyArrayThruDate < %KeyArrayFromDate) #SET(%KeyArrayThruDate,%KeyArrayFromDate) #ENDIF #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':KeyValue') %[20]ValueConstruct LIKE(%ThumbLocatorField) #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':RangeFrom') %[20]ValueConstruct EQUATE(%KeyArrayFromDate) #SET(%ValueConstruct,%KeyArrayThruDate - %KeyArrayFromDate + 1) #SET(%ArrayRangeStep,%ValueConstruct / 100) #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':RangeStep') %[20]ValueConstruct EQUATE(%ArrayRangeStep) #OF('Custom') #CLEAR(%CustomSize) #CLEAR(%CustomStrLen) #FOR(%CustomKeyDistribution) #IF(%CustomSize < LEN(CLIP(%KeyDistributionValue))) #SET(%CustomSize,LEN(CLIP(%KeyDistributionValue))) #ENDIF #ENDFOR #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':Custom') %[20]ValueConstruct STRING('%| #FOR(%CustomKeyDistribution) #IF(%CustomStrLen => 60) %SnglQuote | &'%| #CLEAR(%CustomStrLen) #ENDIF #SET(%CustomStrLen,%CustomStrLen + %CustomSize) %[%CustomSize]KeyDistributionValue%| #ENDFOR %SnglQuote) #SET(%ArrayOverField,'SORT:' & %BrwLbl & ':Custom') #SET(%ValueConstruct,'SORT:' & %BrwLbl & ':Custom:Array') #SET(%ArrayDimSize,ITEMS(%CustomKeyDistribution)) %[20]ValueConstruct STRING(%CustomSize),DIM(%ArrayDimSize),OVER(%ArrayOverField) #ENDCASE #ENDIF #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%BrowseQueueDeclaration) #INSERT(%BuildBrowseBoxQueue) #IF(%UsingViewStructure) #SET(%ValueConstruct,'VIEW:' & %ListQueue) #INSERT(%ConstructView) #ENDIF #IF(%UsingRevKeyOrder) #SET(%ValueConstruct,'RevOrder:' & %BrwLbl) %[20]ValueConstruct BYTE(1) #ENDIF #IF(%UsingIncrementalLocator) #SET(%ValueConstruct,'LocLen:' & %BrwLbl) %[20]ValueConstruct BYTE #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%AfterFileOpen),WHERE(%UsingViewStructure) #FOR(%HotFields),WHERE(%HotFieldBound) BIND('%HotField',%HotField) #ENDFOR #ENDAT #!------------------------------------------------------------------------- #AT(%BeforeFileClose),WHERE(%UsingViewStructure) #FOR(%HotFields),WHERE(%HotFieldBound) UNBIND('%HotField') #ENDFOR CLOSE(VIEW:%ListQueue) #ENDAT #!------------------------------------------------------------------------- #AT(%ProcedureRoutines) #FIX(%File,%Primary) #FIX(%Key,%PrimaryKey) #INSERT(%BrowseListRoutine) #INSERT(%EntrySearchRoutine) #INSERT(%StepSearchRoutine) #INSERT(%IncrementalSearchRoutine) #INSERT(%SetFieldIconsRoutine) #INSERT(%SetFieldColorsRoutine) #INSERT(%LoadSortOrdersRoutine) #IF(%UsingBrowseTotals) #INSERT(%BrowseTotalRoutines) #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%ControlEventHandling,%InLineBatchButton,'Accepted') #IF(%InLineUseBatchEntry AND %InLineBatchButton) IF TC:BRW:ActiveList = %ListControl #<!If Pressed while on %ListControl POST(TCEVENT:InsertBatch,%ListControl) #<! Send Insert Batch Message to List Box END #<!End If #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%ModuleDataSection),WHERE(%UsingInLineEntry) #INSERT(%InLineEntryMAPDeclaration) #ENDAT #!------------------------------------------------------------------------- #AT(%LocalProcedures) #IF(%UsingInLineEntry) #IF(%InLineInsertAllowed OR %InLineChangeAllowed OR %InLineDeleteAllowed) #INSERT(%InLineEntryProcedure) #ELSE #ERROR('ERROR#007:' & %Procedure & '-You Did Not Allow Inserts, Changes, or Deletes') #END #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%EndOfProcedure) #IF(%UsingMultiDisplay) FREE(%SortOrderQueue) #<!Release Memory use by SortOrder Queue #ENDIF FREE(%ListQueue) #<!Release Memory use by Browse Queue #ENDAT #!------------------------------------------------------------------------- #AT(%RefreshWindowBeforeDisplay) #IF(%RelationToListBoxes <> 'Child' AND %RelationToListBoxes <> 'Both') #IF(%UsingBrowseTotals) DO BrowseInitTotals:%BrwLbl #ENDIF TC_PROP:BRW(%ListControl,TCPROP:Action,TCACTION:Refresh) TC_PROP:BRW(%ListControl,TCPROP:SetToItem,CHOICE(%ListControl)) TC_PROP:BRW(%ListControl,TCPROP:DontSelect,True) DO BrowseList:%BrwLbl #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%ResizeOptionsForTabControls) #IF(%EnableWindowResize AND %ListControl = %ResizeListBox) #IF(%UsingMultiDisplay) #FIX(%Control,%ChangeOrderControl) #CASE(%ControlTemplate) #OF('OrderCWTab(ToolCraft)') TC:RSZ:SetTabHeight = 2 #<! Keep Tab Control Same Height as List TC:RSZ:SetTabWidth = 2 #<! Keep Tab Control Same Width as List TC:RSZ:TabControl = %ChangeOrderControl #<! Tell Resize About Tab Control #OF('OrderSAXTab(ToolCraft)') TC:RSZ:SetTabWidth = 1 #<! Keep Tab Control Same Width as List TC:RSZ:TabControl = %ChangeOrderControl #<! Tell Resize About Tab Control #OF('OrderTabVbx(ToolCraft)') #OROF('OrderTabPro(ToolCraft)') #IF(INSTRING('''Orientation''(''1'')',%ControlStatement,1,1) OR INSTRING('''Orientation''(''3'')',%ControlStatement,1,1)) TC:RSZ:SetTabHeight = 1 #<! Keep Tab Control Same Height as List #ELSE TC:RSZ:SetTabWidth = 1 #<! Keep Tab Control Same Width as List #ENDIF TC:RSZ:TabControl = %ChangeOrderControl #<! Tell Resize About Tab Control #ENDCASE #ENDIF #ENDIF #IF(%EnableWindowResize AND %ListControl = %SecondaryResizeListBox) #IF(%UsingMultiDisplay) #FIX(%Control,%ChangeOrderControl) #CASE(%ControlTemplate) #OF('OrderCWTab(ToolCraft)') TC:RSZ:TabControl2 = %ChangeOrderControl #<! Tell Resize About Tab Control #OF('OrderSAXTab(ToolCraft)') TC:RSZ:TabControl2 = %ChangeOrderControl #<!Tell Resize About Secondary Tab Control #SET(%SecondaryResizeTabControl,%ChangeOrderControl) #OF('OrderTabVbx(ToolCraft)') #OROF('OrderTabPro(ToolCraft)') TC:RSZ:TabControl2 = %ChangeOrderControl #<!Tell Resize About Secondary Tab Control #SET(%SecondaryResizeTabControl,%ChangeOrderControl) #ENDCASE #ENDIF #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%ControlEventHandling,%LocatorControl,'Accepted') #IF(%UsingEntryLocator) DO EntrySearch:%BrwLbl #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%ControlPostEventCaseHandling,%ListControl),WHERE(%ProcedureTemplate <> 'PowerBrowse') #EMBED(%BeforeCallBrowseListRoutine,'Just Before Calling BrowseList Routine'),%ActiveTemplateInstance,MAP(%ActiveTemplateInstance,%ActiveTemplateinstanceDescription) DO BrowseList:%BrwLbl #<!Fill Browse Area #EMBED(%AfterCallBrowseListRoutine,'Just After Calling BrowseList Routine'),%ActiveTemplateInstance,MAP(%ActiveTemplateInstance,%ActiveTemplateinstanceDescription) #ENDAT #!------------------------------------------------------------------------- #AT(%CallBrowseListRoutine,%ListControl),WHERE(%ProcedureTemplate = 'PowerBrowse') #EMBED(%BeforeCallBrowseListRoutine,'Just Before Calling BrowseList Routine'),%ActiveTemplateInstance,MAP(%ActiveTemplateInstance,%ActiveTemplateinstanceDescription) DO BrowseList:%BrwLbl #<!Fill Browse Area #EMBED(%AfterCallBrowseListRoutine,'Just After Calling BrowseList Routine'),%ActiveTemplateInstance,MAP(%ActiveTemplateInstance,%ActiveTemplateinstanceDescription) #ENDAT #!------------------------------------------------------------------------- #AT(%BeforeAccept) #IF(%UsingIncrementalLocator) %ListControl{Prop:Alrt,250} = BSKey #<!Alert BackSpace Key for Incremental Locator %ListControl{Prop:Alrt,249} = SpaceKey #<!Alert Space Key for Incremental Locator #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%ControlEventHandling,%ListControl,'AlertKey') #IF(%UsingStepLocator) DO StepSearch:%BrwLbl #ENDIF #IF(%UsingIncrementalLocator) DO IncrementalSearch:%BrwLbl #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%ControlEventHandling,%ListControl,'Locate') #IF(%UsingEntryLocator OR %UsingIncrementalLocator) #FOR(%Control),WHERE(%Control=%ListControl AND EXTRACT(%ControlStatement,'VCR')) SELECT(?%LocatorField) #<!Select Locator Field #ENDFOR #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%BeforeCallBrowseListRoutine,%ActiveTemplateInstance) #IF(%UsingEntryLocator OR %UsingIncrementalLocator) IF EVENT() <> EVENT:AlertKey AND | #<!If Not an Alert Key or a EVENT() <> EVENT:PreAlertKey AND | #<! Pre-Alert Key Event and EVENT() <> EVENT:Selected #<! Control not reselected #IF(%UsingIncrementalLocator) LocLen:%BrwLbl = 0 #<! Clear Locator Length #ENDIF %LocatorField = '' #<! Clear the Search Input Field DISPLAY(?%LocatorField) #<! Display Locator Field END #<!End If #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%ControlEventHandling,%ChangeOrderControl,'Accepted') #IF(%ChangeOrderControlType = 'DropBox' OR %ChangeOrderControlType = 'OptBox') GET(%SortOrderQueue,CHOICE()) #<!Get Order settings from Sort Orders Queue IF NOT ERROR() #<!IF Valid Choice was Selected %SrtPfx:SortOrder = CHOICE() #<! Set sort order #IF(%UsingEntryLocator OR %UsingIncrementalLocator) %LocatorControl{PROP:Text} = %SrtPfx:SearchPicture #<! Set Picture for Search Field #ENDIF %ListControl{PROP:Format} = %SrtPfx:OrderFormat #<! Set number of rows in list box TC_PROP:BRW(%ListControl,TCPROP:Rows,%ListControl{PROP:Items}) #<! Reset number of rows property TC_PROP:BRW(%ListControl,TCPROP:Action,TCACTION:Refresh) #<! Tell Browse to start redisplay with a search by key TC_PROP:BRW(%ListControl,TCPROP:SetToPosition,2) #<! Set Redisplay at Key Position in Queue DO BrowseList:%BrwLbl #<! Call BrowseList and Execute Redisplay END #<!End #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%ControlEventHandling,%ChangeOrderControl,'NewSelection') #IF(%ChangeOrderControlType = 'CWTab') GET(%SortOrderQueue,CHOICE()) #<!Get Order settings from Sort Orders Queue IF NOT ERROR() #<!IF Valid Choice was Selected %SrtPfx:SortOrder = CHOICE() #<! Set sort order #IF(%UsingEntryLocator OR %UsingIncrementalLocator) %LocatorControl{PROP:Text} = %SrtPfx:SearchPicture #<! Set Picture for Search Field #ENDIF %ListControl{PROP:Format} = %SrtPfx:OrderFormat #<! Set number of rows in list box TC_PROP:BRW(%ListControl,TCPROP:Rows,%ListControl{PROP:Items}) #<! Reset number of rows property TC_PROP:BRW(%ListControl,TCPROP:Action,TCACTION:Refresh) #<! Tell Browse to start redisplay with a search by key TC_PROP:BRW(%ListControl,TCPROP:SetToPosition,2) #<! Set Redisplay at Key Position from Queue DO BrowseList:%BrwLbl #<! Call BrowseList and Execute Redisplay END #<!End #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%ControlEventHandling,%ChangeOrderControl,'VBXEvent') #IF(%ChangeOrderControlType = 'SAXTab') Choice%# = %ChangeOrderControl{'ActiveTab','Get'} + 1 #<!Read Choice Made for Tab Control #ENDIF #IF(%ChangeOrderControlType = 'TabVbx' OR %ChangeOrderControlType = 'TabPro') IF NOT %ChangeOrderControl{PROP:VBXEvent} = 'TabShown' #<!If Not Tab Shown Event CYCLE #<! Don't Process the Event END #<!End if Choice%# = %ChangeOrderControl{'ActiveTab'} + 1 #<!Read Choice Made for Tab Control #ENDIF #CASE(%ChangeOrderControlType) #OF('SAXTab') #OROF('TabVbx') #OROF('TabPro') GET(%SortOrderQueue,Choice%#) #<!Get Order settings from Sort Orders Queue IF NOT ERROR() #<!IF Valid Choice was Selected %SrtPfx:SortOrder = Choice%# #<! Set sort order #IF(%UsingEntryLocator OR %UsingIncrementalLocator) %LocatorControl{PROP:Text} = %SrtPfx:SearchPicture #<! Set Picture for Search Field #ENDIF %ListControl{PROP:Format} = %SrtPfx:OrderFormat #<! Set number of rows in list box TC_PROP:BRW(%ListControl,TCPROP:Rows,%ListControl{PROP:Items}) #<! Reset number of rows property TC_PROP:BRW(%ListControl,TCPROP:Action,TCACTION:Refresh) #<! Tell Browse to start redisplay with a search by key TC_PROP:BRW(%ListControl,TCPROP:SetToPosition,2) #<! Set Redisplay at Key Position from Queue DO BrowseList:%BrwLbl #<! Call BrowseList and Execute Redisplay END #<!End #ENDCASE #ENDAT #!------------------------------------------------------------------------- #AT(%AfterWindowOpening) #IF(%UsingMultiDisplay) DO LoadSortOrders:%BrwLbl #ENDIF #ENDAT #! #! #! #!=============================================================================! #! ! #! Alternate List Format Control ! #! ! #!=============================================================================! #CONTROL(AlternateListFormat,'Alternate List Box Format'),REQ(BrowseBox(ToolCraft)),MULTI CONTROLS LIST,AT(,,39,9),USE(?Fmt1:Order),FROM('Null'),HIDE,FONT('System',,0FF0000H,FONT:bold) END #BUTTON('Alternate List Format Options'),AT(10,,180) #SHEET #PREPARE #FIND(%ControlInstance,%ActiveTemplateInstance,%Control) #ENDPREPARE #TAB('&Colors'),WHERE(NOT %ControlHasColor),HLP('~PBAlternateListFormatColorsTab') #DISPLAY('No color options were checked in the list box formatter.') #DISPLAY('To enable colors in a list box you must first check the') #DISPLAY('color option for each field that will use coloring.') #DISPLAY('After you complete this step you a will be able to set the') #DISPLAY('color properties for each field from this page.') #ENDTAB #TAB('&Colors'),WHERE(%ControlHasColor),HLP('~PBAlternateListFormatColorsTab') #PREPARE #FIND(%ControlInstance,%ActiveTemplateInstance,%Control) #ENDPREPARE #BUTTON('Customize Colors'),FROM(%ControlField,%ControlField),AT(,30),HLP('~PBAlternateListFormatCustomizeColors'),INLINE,WHERE(%ControlFieldHasColor) #PREPARE #FIND(%ControlInstance,%ActiveTemplateInstance,%Control) #ENDPREPARE #BOXED('Default Colors') #PROMPT('&Foreground Normal:',COLOR),%ControlFieldForegroundNormal,DEFAULT(-1) #PROMPT('&Background Normal:',COLOR),%ControlFieldBackgroundNormal,DEFAULT(-1) #PROMPT('&Foreground Selected:',COLOR),%ControlFieldForegroundSelected,DEFAULT(-1) #PROMPT('&Background Selected:',COLOR),%ControlFieldBackgroundSelected,DEFAULT(-1) #ENDBOXED #BOXED('Conditional Color Assignments') #BUTTON('Conditional Color Assignments'),MULTI(%ConditionalColors,%ColorCondition),INLINE,HLP('~PBConditionalColors') #PROMPT('&Condition:',@S255),%ColorCondition #PROMPT('&Foreground Normal:',COLOR),%ConditionalControlFieldForegroundNormal,DEFAULT(-1) #PROMPT('&Background Normal:',COLOR),%ConditionalControlFieldBackgroundNormal,DEFAULT(-1) #PROMPT('&Foreground Selected:',COLOR),%ConditionalControlFieldForegroundSelected,DEFAULT(-1) #PROMPT('&Background Selected:',COLOR),%ConditionalControlFieldBackgroundSelected,DEFAULT(-1) #ENDBUTTON #ENDBOXED #ENDBUTTON #ENDTAB #PREPARE #FIND(%ControlInstance,%ActiveTemplateInstance,%Control) #ENDPREPARE #TAB('&Icons'),WHERE(NOT %ControlHasIcon),HLP('~PBAlternateListFormatIconsTab') #DISPLAY('No icons fields were defined in the list box formatter.') #DISPLAY('To define an icon in a list box you must first check the') #DISPLAY('icon option for each field that will display an icon.') #DISPLAY('After you complete this step you a will be able to set the') #DISPLAY('icon properties for each field from this page.') #ENDTAB #TAB('&Icons'),WHERE(%ControlHasIcon),HLP('~PBAlternateListFormatIconsTab') #PREPARE #FIND(%ControlInstance,%ActiveTemplateInstance,%Control) #ENDPREPARE #BUTTON('&Customize Icons'),FROM(%ControlField,%ControlField & ' - ' & %ControlFieldIcon),AT(,30),HLP('~PBAlternateListFormatCustomizeIcons'),INLINE,WHERE(%ControlFieldHasIcon) #PREPARE #FIND(%ControlInstance,%ActiveTemplateInstance,%Control) #ENDPREPARE #BOXED('Default Icon') #PROMPT('Icon:',@S40),%ControlFieldIcon #ENDBOXED #BOXED('Conditional Icon Usage') #BUTTON('&Conditional Icon Usage'),MULTI(%ConditionalIcons,%IconCondition),INLINE,HLP('~PBConditionalIcons') #PROMPT('&Condition:',@S255),%IconCondition #PROMPT('Icon:',@S40),%ConditionalControlFieldIcon #ENDBUTTON #ENDBOXED #ENDBUTTON #ENDTAB #ENDSHEET #ENDBUTTON #! #! #ATSTART #DECLARE(%AltFmtControl) #DECLARE(%AltFmtBrwLbl) #DECLARE(%AltFmtListControl) #DECLARE(%IndentValue) #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateInstance) #SET(%AltFmtControl,%Control) #ENDFOR #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateParentInstance) #SET(%AltFmtBrwLbl,%ControlFrom) #SET(%AltFmtListControl,%Control) #ENDFOR #ENDAT #!------------------------------------------------------------------------ #AT(%SetIconListProperties),WHERE(%ListBoxHasIcon) #INSERT(%AddAllIconsForControl) #ENDAT #!------------------------------------------------------------------------ #AT(%SetFieldColors,%AltFmtControl) #INSERT(%SetColorValues,%AltFmtControl,%AltFmtBrwLbl,%IndentValue) #ENDAT #!------------------------------------------------------------------------ #AT(%SetFieldIcons,%AltFmtControl) #INSERT(%SetIconValues,%AltFmtControl,%AltFmtBrwLbl,%IndentValue,%AltFmtListControl) #ENDAT #!------------------------------------------------------------------------ #! #! #!=============================================================================! #! ! #! Select Button Control ! #! ! #!=============================================================================! #CONTROL(SelectButton,'Select a record from a BrowseBox Control'),REQ(BrowseBox(ToolCraft)),FIRST CONTROLS BUTTON('Select'),AT(,,40,10),KEY(EnterKey),USE(?Select) END #BOXED('Power Browse Settings') #BUTTON('Select Button Prompts'),AT(10,11,180),HLP('~PBSelectButton') #PROMPT('Hide When Browse Not Called as a Lookup',CHECK),%HideIfDisabled,AT(10,10,150) #PROMPT('Don''t Disable Button when List Box is Empty',CHECK),%NoSelectButtonDisable,DEFAULT(0),AT(10,,180) #ENDBUTTON #ENDBOXED #ATSTART #DECLARE(%SelectListControl) #DECLARE(%SelectBrwLbl) #DECLARE(%SelectControl) #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateInstance) #SET(%SelectControl,%Control) #ENDFOR #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateParentInstance) #SET(%SelectListControl,%Control) #SET(%SelectBrwLbl,%ControlFrom) #ENDFOR #ENDAT #!------------------------------------------------------------------------ #AT(%EnableSaveButtons,%SelectListControl),WHERE(NOT %NoSelectButtonDisable) #FOR(%Control),WHERE(%Control=%SelectControl AND NOT EXTRACT(%ControlStatement,'DISABLE')) IF OriginalRequest = SelectRecord #<! If Browse was Called as a Lookup ENABLE(%SelectControl) #<! Enable the Select Button END #<! End If #ENDFOR #ENDAT #!------------------------------------------------------------------------ #AT(%DisableSaveButtons,%SelectListControl),WHERE(NOT %NoSelectButtonDisable) #FOR(%Control),WHERE(%Control=%SelectControl AND NOT EXTRACT(%ControlStatement,'DISABLE')) IF OriginalRequest = SelectRecord #<! If Browse was Called as a Lookup DISABLE(%SelectControl) #<! Disable the Select Button END #<! End If #ENDFOR #ENDAT #!------------------------------------------------------------------------ #AT(%AfterWindowOpening) IF LocalRequest = SelectRecord #<!If Calling Procedure as a Lookup #IF(%HideIfDisabled) UNHIDE(%SelectControl) #<! Unhide the Select Button #ENDIF ENABLE(%SelectControl) #<! Enable the Select Button ELSE #<!Otherwise #IF(%HideIfDisabled) HIDE(%SelectControl) #<! Hide the Select Button #ENDIF DISABLE(%SelectControl) #<! Disable the Select Button END #<!End If #ENDAT #!------------------------------------------------------------------------ #AT(%ControlEventHandling,%SelectControl,'Accepted') GET(%SelectBrwLbl,TC_PROP:BRW(%SelectListControl,TCPROP:CurItem)) #<! Reread Current Record Position REGET(%Primary,%SelectBrwLbl:Position) #<! Load the Record LocalResponse = RequestCompleted #<! Lookup was completed POST(Event:CloseWindow) #<! Return Selected Record to Caller #ENDAT #! #! #!=============================================================================! #! ! #! Reverse Key Order Button Control ! #! ! #!=============================================================================! #CONTROL(ReverseKeyOrderButton,'Reverse Key Display Order Button'),REQ(BrowseBox(ToolCraft)),MULTI CONTROLS BUTTON('Reverse'),AT(,,40,10),USE(?RevKeyOrder) END #BOXED('Power Browse Settings') #BUTTON('Reverse Key Order Button Prompts'),AT(10,11,180),HLP('~PBReverseKeyOrderButton') #PROMPT('Key Order on Open:',DROP('Normal|Reverse')),%RevKeyOrderDefaultMode,DEFAULT('Normal') #PROMPT('Button Text for Normal:',@S30),%RevKeyOrderButtonTextNormal,DEFAULT('Normal') #PROMPT('Button Text for Reverse:',@S30),%RevKeyOrderButtonTextReverse,DEFAULT('Reverse') #ENDBUTTON #ENDBOXED #! #! #ATSTART #DECLARE(%RevKeyOrderControl) #DECLARE(%RevKeyOrderListControl) #DECLARE(%RevKeyOrderBrwLbl) #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateInstance) #SET(%RevKeyOrderControl,%Control) #ENDFOR #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateParentInstance) #SET(%RevKeyOrderListControl,%Control) #SET(%RevKeyOrderBrwLbl,%ControlFrom) #ENDFOR #IF(NOT %UsingRevKeyOrder) #ERROR('ERROR#010:' & %Procedure & ' - Reverse Key Order Button is invalid because ' & %RevKeyOrderListControl & ' is not set to use reverse key order.') #ENDIF #ENDAT #! #!------------------------------------------------------------------------- #AT(%AfterWindowOpening),WHERE(%UsingRevKeyOrder) #IF(%RevKeyOrderDefaultMode='Normal') RevOrder:%RevKeyOrderBrwLbl = False #<!Set Normal Key Order for %RevKeyOrderBrwLbl %RevKeyOrderControl{PROP:Text} = '%RevKeyOrderButtonTextReverse' #<!Set Test for Rev Key Order Button #ELSE RevOrder:%RevKeyOrderBrwLbl = True #<!Set Reverse Key Order for %RevKeyOrderBrwLbl %RevKeyOrderControl{PROP:Text} = '%RevKeyOrderButtonTextNormal' #<!Set Test for Rev Key Order Button #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%ControlEventHandling,%RevKeyOrderControl,'Accepted'),WHERE(%UsingRevKeyOrder) IF RevOrder:%RevKeyOrderBrwLbl RevOrder:%RevKeyOrderBrwLbl = False %RevKeyOrderControl{PROP:Text} = '%RevKeyOrderButtonTextReverse' ELSE RevOrder:%RevKeyOrderBrwLbl = True %RevKeyOrderControl{PROP:Text} = '%RevKeyOrderButtonTextNormal' END POST(TCEVENT:SamePage,%RevKeyOrderListControl) #ENDAT #! #! #!=============================================================================! #! ! #! InLine On/Off Button Control ! #! ! #!=============================================================================! #CONTROL(InLineOnOffButton,'InLine On/Off Button'),REQ(PowerBrowseLibrary(ToolCraft)) CONTROLS BUTTON('InLine On/Off'),AT(,,55,12),USE(?InLineToggle) END #BOXED('Power Browse Settings') #BUTTON('InLine On/Off Button Prompts'),AT(10,11,180),HLP('~PBInLineOnOffButton') #PROMPT('InLine Mode on Open:',DROP('On|Off')),%InLineDefaultMode,DEFAULT('On') #PROMPT('Button Text When On:',@S30),%InLineButtonTextOn,DEFAULT('InLine On') #PROMPT('Button Text When Off:',@S30),%InLineButtonTextOff,DEFAULT('InLine Off') #ENDBUTTON #ENDBOXED #! #! #ATSTART #DECLARE(%InLineOnOffControl) #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateInstance) #SET(%InLineOnOffControl,%Control) #ENDFOR #ENDAT #! #!------------------------------------------------------------------------- #AT(%OtherLocalVariables) #IF(%InLineDefaultMode='On') InLineActive BYTE(1) #ELSE InLineActive BYTE(0) #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%AfterWindowOpening) #IF(%InLineDefaultMode='On') %InLineOnOffControl{PROP:Text} = '%InLineButtonTextOn' #ELSE %InLineOnOffControl{PROP:Text} = '%InLineButtonTextOff' #ENDIF #ENDAT #!------------------------------------------------------------------------- #AT(%ControlEventHandling,%InLineOnOffControl,'Accepted') IF InLineActive %InLineOnOffControl{PROP:Text} = '%InLineButtonTextOff' InLineActive = 0 ELSE %InLineOnOffControl{PROP:Text} = '%InLineButtonTextOn' InLineActive = 1 END SELECT(TC:BRW:ActiveList) #END #! #! #!=============================================================================! #! ! #! Update Buttons Control ! #! ! #!=============================================================================! #CONTROL(UpdateButtons,'Update Records from a Browse Box Control'),REQ(BrowseBox(ToolCraft)),MULTI CONTROLS BUTTON('Insert'),AT(,,40,10),USE(?Insert) BUTTON('Change'),AT(42,0,40,10),USE(?Change) BUTTON('Delete'),AT(42,0,40,10),USE(?Delete) END #BOXED('Power Browse Settings') #BUTTON('Update Button Prompts'),AT(10,11,180),HLP('~PBUpdateButtons') #PROMPT('Share the Buttons Between All List Boxes',CHECK),%UseUpdateButtonsOnAllBoxes,DEFAULT(0),AT(10,,150) #PROMPT('Don''t Disable Buttons when List Box is Empty',CHECK),%NoUpdateButtonDisable,DEFAULT(0),AT(10,,180) #PROMPT('Auto Add when Entering an Empty List Box',CHECK),%AutoAddOnEmptyListBox,DEFAULT(0),AT(10,,150) #PROMPT('Close Window After Deleting Last Record in List Box',CHECK),%CloseOnLastDelete,DEFAULT(0),AT(10,,185) #ENDBUTTON #ENDBOXED #ATSTART #DECLARE(%UpdateListControl) #DECLARE(%InsertControl) #DECLARE(%ChangeControl) #DECLARE(%DeleteControl) #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateParentInstance) #SET(%UpdateListControl,%Control) #ENDFOR #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateInstance) #CASE(%ControlOriginal) #OF('?Insert') #SET(%InsertControl,%Control) #OF('?Change') #SET(%ChangeControl,%Control) #OF('?Delete') #SET(%DeleteControl,%Control) #ENDCASE #ENDFOR #ENDAT #!------------------------------------------------------------------------ #AT(%NoRecordsAction,%UpdateListControl),WHERE(%AutoAddOnEmptyListBox) IF NOT TC:BRW:DeletedLast #<!If Not Deleting Last Record POST(TCEVENT:InsertRecord,%UpdateListControl) #<! Automatically Add when Empty END #<!End If #ENDAT #!------------------------------------------------------------------------ #AT(%NoRecordsAction,%UpdateListControl),WHERE(%CloseOnLastDelete) IF TC:BRW:DeletedLast #<!If Deleted Last Record POST(EVENT:CloseWindow) #<! Exit on Delete of Last Record END #<!End If #ENDAT #!------------------------------------------------------------------------ #AT(%EnableInsertButton,%UpdateListControl),WHERE(NOT %NoUpdateButtonDisable) #FOR(%Control),WHERE(%Control=%InsertControl AND NOT EXTRACT(%ControlStatement,'DISABLE')) ENABLE(%InsertControl) #<! Enable Child List Insert Button #ENDFOR #ENDAT #!------------------------------------------------------------------------ #AT(%DisableInsertButton,%UpdateListControl),WHERE(NOT %NoUpdateButtonDisable) #FOR(%Control),WHERE(%Control=%InsertControl AND NOT EXTRACT(%ControlStatement,'DISABLE')) DISABLE(%InsertControl) #<! Disable Child List Insert Button #ENDFOR #ENDAT #!------------------------------------------------------------------------ #AT(%EnableSaveButtons,%UpdateListControl),WHERE(NOT %NoUpdateButtonDisable) #FOR(%Control),WHERE(%Control=%ChangeControl AND NOT EXTRACT(%ControlStatement,'DISABLE')) ENABLE(%ChangeControl) #<! Enable Change Button #ENDFOR #FOR(%Control),WHERE(%Control=%DeleteControl AND NOT EXTRACT(%ControlStatement,'DISABLE')) ENABLE(%DeleteControl) #<! Enable Delete Button #ENDFOR #ENDAT #!------------------------------------------------------------------------ #AT(%DisableSaveButtons,%UpdateListControl),WHERE(NOT %NoUpdateButtonDisable) #FOR(%Control),WHERE(%Control=%ChangeControl AND NOT EXTRACT(%ControlStatement,'DISABLE')) DISABLE(%ChangeControl) #<! Disable Change Button #ENDFOR #FOR(%Control),WHERE(%Control=%DeleteControl AND NOT EXTRACT(%ControlStatement,'DISABLE')) DISABLE(%DeleteControl) #<! Disable Delete Button #ENDFOR #ENDAT #!------------------------------------------------------------------------ #AT(%ControlEventHandling,%InsertControl,'Accepted') #IF(%UseUpdateButtonsOnAllBoxes) POST(TCEVENT:InsertRecord,TC:BRW:ActiveList) #<!Send Insert Message to List Box #ELSE POST(TCEVENT:InsertRecord,%UpdateListControl) #<!Send Insert Message to List Box #ENDIF #ENDAT #!------------------------------------------------------------------------ #AT(%ControlEventHandling,%ChangeControl,'Accepted') #IF(%UseUpdateButtonsOnAllBoxes) POST(TCEVENT:ChangeRecord,TC:BRW:ActiveList) #<!Send Change Message to List Box #ELSE POST(TCEVENT:ChangeRecord,%UpdateListControl) #<!Send Change Message to List Box #ENDIF #ENDAT #!------------------------------------------------------------------------ #AT(%ControlEventHandling,%DeleteControl,'Accepted') #IF(%UseUpdateButtonsOnAllBoxes) POST(TCEVENT:DeleteRecord,TC:BRW:ActiveList) #<!Send Delete Message to List Box #ELSE POST(TCEVENT:DeleteRecord,%UpdateListControl) #<!Send Delete Message to List Box #ENDIF #ENDAT #!------------------------------------------------------------------------ #! #! #! #!=============================================================================! #! ! #! Search Entry Field Control ! #! ! #!=============================================================================! #CONTROL(SearchEntry,'Search Entry Field'),MULTI CONTROLS ENTRY(@S40),AT(,,80,10),USE(Search),MSG('Enter Search Criteria') END #LOCALDATA Search STRING(40) #ENDLOCALDATA #! #! #! #!=============================================================================! #! ! #! Search Entry Field and Promp Control ! #! ! #!=============================================================================! #CONTROL(SearchEntryAndPrompt,'Search Entry Field and Prompt'),MULTI CONTROLS PROMPT('Search:'),AT(,,25,10),USE(?Search:Prompt) ENTRY(@S40),AT(27,0,80,10),USE(Search),MSG('Enter Search Criteria') END #LOCALDATA Search STRING(40) #ENDLOCALDATA #! #! #! #! #!=============================================================================! #! ! #! Change Order CW Tab Control ! #! ! #!=============================================================================! #CONTROL(OrderCWTab,'Change Order CW Tab Control'),MULTI CONTROLS SHEET,AT(,,110,60),USE(?ChangeOrder) TAB('Tab 1') END END END #ATSTART #DECLARE(%CWTabChangeOrderControl) #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateInstance AND %ControlType = 'SHEET') #SET(%CWTabChangeOrderControl,%Control) #ENDFOR #ENDAT #!------------------------------------------------------------------------- #AT(%DisableTabBeforeInLineUpdate,%CWTabChangeOrderControl) DISABLE(%CWTabChangeOrderControl) #<! Disable Change Order Control #ENDAT #!------------------------------------------------------------------------- #AT(%EnableTabAfterInLineUpdate,%CWTabChangeOrderControl) ENABLE(%CWTabChangeOrderControl) #<! Enable Change Order Control #ENDAT #!------------------------------------------------------------------------- #! #! #!=============================================================================! #! ! #! Change Order Drop Box Control ! #! ! #!=============================================================================! #CONTROL(OrderDropBox,'Change Order Drop Box'),MULTI CONTROLS PROMPT('Sort By:'),AT(,,28,10),USE(?ChangeOrder:Prompt) LIST,AT(30,0,80,10),USE(?ChangeOrder),FORMAT('160L@s40@'),DROP(4),FROM(DropBoxOrderQ) END #BOXED('Power Browse Settings') #BUTTON('Change Order Drop Box Options'),AT(10,11,180),HLP('~PBOrderDropBox') #PROMPT('&Item# to Select when Control is Initialized:',@N3),%DropBoxSelectItem,DEFAULT(1),PROMPTAT(10,,135),AT(150,,20) #ENDBUTTON #ENDBOXED #LOCALDATA ChangeOrder STRING(1) #ENDLOCALDATA #! #ATSTART #DECLARE(%DropBoxChangeOrderControl) #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateInstance) #SET(%DropBoxChangeOrderControl,%Control) #ENDFOR #IF(NOT %DropBoxSelectItem) #SET(%DropBoxSelectItem,1) #ENDIF #ENDAT #! #AT(%SetInitialSortOrder,%DropBoxChangeOrderControl),WHERE(%DropBoxSelectItem > 1) %DropBoxSelectItem #<!Default to Sort Order #%DropBoxSelectItem #ENDAT #!=============================================================================! #! ! #! Change Order Option Box Control ! #! ! #!=============================================================================! #CONTROL(OrderOptBox,'Change Order Option Box'),MULTI CONTROLS OPTION('Sort By:'),AT(,,90,20),USE(?ChangeOrder),BOXED END END #ATSTART #DECLARE(%OptBoxChangeOrderControl) #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateInstance) #SET(%OptBoxChangeOrderControl,%Control) #ENDFOR #ENDAT #!------------------------------------------------------------------------- #AT(%DisableTabBeforeInLineUpdate,%OptBoxChangeOrderControl) DISABLE(%OptBoxChangeOrderControl) #<! Disable Change Order Control #ENDAT #!------------------------------------------------------------------------- #AT(%EnableTabAfterInLineUpdate,%OptBoxChangeOrderControl) ENABLE(%OptBoxChangeOrderControl) #<! Enable Change Order Control #ENDAT #!------------------------------------------------------------------------- #! #! #! #!=============================================================================! #! ! #! Change Order SAXTab Control ! #! ! #!=============================================================================! #CONTROL(OrderSAXTab,'Change Order Using SAX Tab Control'),MULTI CONTROLS CUSTOM('Tab 0|Tab 1|Tab 2|Tab 3'),AT(,,100,15),USE(?ChangeOrder),CLASS('SAXTABS.VBX','SaxTab'), | 'ActiveTabColor'('65280'),'BackColor'('12632256'),'InactiveTabColor'('8421504') END #ATSTART #DECLARE(%SaxTabChangeOrderControl) #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateInstance) #SET(%SaxTabChangeOrderControl,%Control) #ENDFOR #ENDAT #!------------------------------------------------------------------------- #AT(%DisableTabBeforeInLineUpdate,%SaxTabChangeOrderControl) DISABLE(%SaxTabChangeOrderControl) #<! Disable Tab Control #ENDAT #!------------------------------------------------------------------------- #AT(%EnableTabAfterInLineUpdate,%SaxTabChangeOrderControl) ENABLE(%SaxTabChangeOrderControl) #<! Enable Tab Control #ENDAT #!------------------------------------------------------------------------- #! #! #! #!=============================================================================! #! ! #! Change Order FarPoint TAB/VBX Control ! #! ! #!=============================================================================! #CONTROL(OrderTabVbx,'Change Order Using FarPoint TAB/VBX Control'),MULTI CONTROLS CUSTOM('TabVbx 1'),AT(,,100,15),USE(?ChangeOrder),CLASS('FPTAB11.VBX','TabCtl'),'Orientation'('2'),'TabSeparator'('4') END #ATSTART #DECLARE(%TabVbxChangeOrderControl) #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateInstance) #SET(%TabVbxChangeOrderControl,%Control) #ENDFOR #ENDAT #!------------------------------------------------------------------------- #AT(%DisableTabBeforeInLineUpdate,%TabVbxChangeOrderControl) DISABLE(%TabVbxChangeOrderControl) #<! Disable Tab Control #ENDAT #!------------------------------------------------------------------------- #AT(%EnableTabAfterInLineUpdate,%TabVbxChangeOrderControl) ENABLE(%TabVbxChangeOrderControl) #<! Enable Tab Control #ENDAT #!------------------------------------------------------------------------- #! #! #! #!=============================================================================! #! ! #! Change Order FarPoint TAB/PRO Control ! #! ! #!=============================================================================! #CONTROL(OrderTabPro,'Change Order Using FarPoint TAB/PRO Control'),MULTI CONTROLS CUSTOM('TabPro 1'),AT(,,100,15),USE(?ChangeOrder),CLASS('TABPRO11.VBX','fpVBTabPro11'),'Orientation'('2'),'TabSeparator'('4') END #ATSTART #DECLARE(%TabProChangeOrderControl) #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateInstance) #SET(%TabProChangeOrderControl,%Control) #ENDFOR #ENDAT #!------------------------------------------------------------------------- #AT(%DisableTabBeforeInLineUpdate,%TabProChangeOrderControl) DISABLE(%TabProChangeOrderControl) #<! Disable Tab Control #ENDAT #!------------------------------------------------------------------------- #AT(%EnableTabAfterInLineUpdate,%TabProChangeOrderControl) ENABLE(%TabProChangeOrderControl) #<! Enable Tab Control #ENDAT #!------------------------------------------------------------------------- #! #! #! #!=============================================================================! #! ! #! Record Marking Buttons ! #! ! #!=============================================================================! #CONTROL(MarkButtons,'Record Marking Buttons'),REQ(BrowseBox(ToolCraft)),MULTI CONTROLS BUTTON('&Mark'),AT(,,40,10),USE(?Mark) BUTTON('&Unmark'),AT(42,0,40,10),USE(?Unmark) BUTTON('Mark &All'),AT(42,0,40,10),USE(?MarkAll) BUTTON('&Clear All'),AT(42,0,40,10),USE(?UnmarkAll) END #BOXED('Power Browse Settings') #BUTTON('Record Marking Prompts'),AT(10,11,180),HLP('~PBMarkButtons') #PROMPT('Always Reselect List After a Mark Button is Pressed',CHECK),%AlwaysReselectList,DEFAULT(1),AT(10,10,180) #DISPLAY(''),AT(,15) #PROMPT('Enable Space and Shift+Space Keys for Marking',CHECK),%MarkWithSpaceBar,DEFAULT(0),AT(10,,180) #DISPLAY('(Note: Keys must be Alerted on the List Box Control)'),AT(20) #DISPLAY(''),AT(,40) #PROMPT('Don''t Disable Buttons when List Box is Empty',CHECK),%NoMarkButtonDisable,DEFAULT(0),AT(10,,180) #DISPLAY(''),AT(,55) #PROMPT('List Box Display Field:',FIELD),%MarkStatusField,DEFAULT('MarkStatus') #VALIDATE(%MarkStatusField,'You Must Select a List Box Display Field') #PROMPT('Queue Name to Use:',@S25),%MarkQueueName,DEFAULT('MarkQueue') #VALIDATE(%MarkQueueName,'You Must Enter a Queue Name') #PROMPT('All Records Marked Flag:',@S50),%MarkAllFlag,DEFAULT('MarkAllFlag') #VALIDATE(%MarkAllFlag,'You Must Enter a Marked Flag') #DISPLAY(''),AT(,95) #PROMPT('Marked Message:',@S25),%MarkedMessage,DEFAULT('X') #PROMPT('Not Marked Message:',@S25),%NotMarkedMessage #DISPLAY(''),at(,123) #PROMPT('Point Bar Movement:',DROP('None|Next|Previous')),%GotoAfterMark,DEFAULT('None') #ENDBUTTON #ENDBOXED #LOCALDATA MarkStatus STRING(15) #ENDLOCALDATA #ATSTART #DECLARE(%MarkListControl) #DECLARE(%MarkListQueue) #DECLARE(%MarkBrwNum) #DECLARE(%MarkBrwPfx) #DECLARE(%MrkPfx) #DECLARE(%PrimaryKeyField) #DECLARE(%PrimaryKeyPfxAndField) #DECLARE(%PrimaryKeyBrwField) #DECLARE(%MarkControl) #DECLARE(%MarkKey) #DECLARE(%UnmarkControl) #DECLARE(%UnmarkKey) #DECLARE(%MarkAllControl) #DECLARE(%MarkAllKey) #DECLARE(%UnmarkAllControl) #DECLARE(%UnmarkAllKey) #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateInstance) #CASE(%ControlOriginal) #OF('?Mark') #SET(%MarkControl,%Control) #IF(%AlwaysReselectList) #CLEAR(%MarkKey) #ELSE #SET(%MarkKey,EXTRACT(%ControlStatement,'KEY')) #SET(%MarkKey,SUB(%MarkKey,5,LEN(%MarkKey) - 5)) #IF(NOT %MarkKey) #SET(%MarkKey,EXTRACT(%ControlStatement,'BUTTON')) #SET(%MarkKey,SUB(%MarkKey,9,LEN(%MarkKey) - 10)) #SET(%ValueConstruct,INSTRING('&',%MarkKey)) #IF(%ValueConstruct) #SET(%MarkKey,'Alt' & UPPER(SUB(%MarkKey,%ValueConstruct+1,1))) #ELSE #CLEAR(%MarkKey) #END #ENDIF #ENDIF #OF('?Unmark') #SET(%UnmarkControl,%Control) #IF(%AlwaysReselectList) #CLEAR(%UnmarkKey) #ELSE #SET(%UnmarkKey,EXTRACT(%ControlStatement,'KEY')) #SET(%UnmarkKey,SUB(%UnmarkKey,5,LEN(%UnmarkKey) - 5)) #IF(NOT %UnmarkKey) #SET(%UnmarkKey,EXTRACT(%ControlStatement,'BUTTON')) #SET(%UnmarkKey,SUB(%UnmarkKey,9,LEN(%UnmarkKey) - 10)) #SET(%ValueConstruct,INSTRING('&',%UnmarkKey)) #IF(%ValueConstruct) #SET(%UnmarkKey,'Alt' & UPPER(SUB(%UnmarkKey,%ValueConstruct+1,1))) #ELSE #CLEAR(%UnmarkKey) #END #ENDIF #ENDIF #OF('?MarkAll') #SET(%MarkAllControl,%Control) #IF(%AlwaysReselectList) #CLEAR(%MarkAllKey) #ELSE #SET(%MarkAllKey,EXTRACT(%ControlStatement,'KEY')) #SET(%MarkAllKey,SUB(%MarkAllKey,5,LEN(%MarkAllKey) - 5)) #IF(NOT %MarkAllKey) #SET(%MarkAllKey,EXTRACT(%ControlStatement,'BUTTON')) #SET(%MarkAllKey,SUB(%MarkAllKey,9,LEN(%MarkAllKey) - 10)) #SET(%ValueConstruct,INSTRING('&',%MarkAllKey)) #IF(%ValueConstruct) #SET(%MarkAllKey,'Alt' & UPPER(SUB(%MarkAllKey,%ValueConstruct+1,1))) #ELSE #CLEAR(%MarkAllKey) #END #ENDIF #ENDIF #OF('?UnmarkAll') #SET(%UnmarkAllControl,%Control) #IF(%AlwaysReselectList) #CLEAR(%UnmarkAllKey) #ELSE #SET(%UnmarkAllKey,EXTRACT(%ControlStatement,'KEY')) #SET(%UnmarkAllKey,SUB(%UnmarkKey,5,LEN(%UnmarkAllKey) - 5)) #IF(NOT %UnmarkAllKey) #SET(%UnmarkAllKey,EXTRACT(%ControlStatement,'BUTTON')) #SET(%UnmarkAllKey,SUB(%UnmarkAllKey,9,LEN(%UnmarkAllKey) - 10)) #SET(%ValueConstruct,INSTRING('&',%UnmarkAllKey)) #IF(%ValueConstruct) #SET(%UnmarkAllKey,'Alt' & UPPER(SUB(%UnmarkAllKey,%ValueConstruct+1,1))) #ELSE #CLEAR(%UnmarkAllKey) #END #ENDIF #ENDIF #ENDCASE #ENDFOR #CLEAR(%PrimaryKeyField) #FIX(%File,%Primary) #FIX(%Key,%FilePrimaryKey) #FOR(%KeyField) #SET(%PrimaryKeyField,SUB(%KeyField,INSTRING(':',%KeyField) + 1,LEN(%KeyField))) #SET(%PrimaryKeyPfxAndField,%KeyField) #SET(%PrimaryKeyBrwField,%KeyField) #END #IF(NOT %PrimaryKeyField) #ERROR('ERROR#006:' & %Procedure & '-Record Marking Requires a Primary Key') #END #FOR(%Control),WHERE(%ControlInstance = %ActiveTemplateParentInstance) #SET(%MarkListControl,%Control) #SET(%MarkListQueue,%ControlFrom) #SET(%MarkBrwNum,%ControlInstance) #SET(%MarkBrwPfx,%ControlFrom) #SET(%PrimaryKeyBrwField,%MarkBrwPfx & ':' & %PrimaryKeyBrwField) #ENDFOR #CLEAR(%ValueConstruct) #FOR(%Control) #IF(%ControlTemplate = 'BrowseBox(ToolCraft)') #SET(%ValueConstruct,%ValueConstruct + 1) #ENDIF #ENDFOR #IF(%MarkBrwNum = 1 AND %ValueConstruct = 1) #CLEAR(%MarkBrwNum) #END #SET(%MrkPfx,'MQ' & %MarkBrwNum) #ENDAT #!------------------------------------------------------------------------ #AT(%EnableSaveButtons,%MarkListControl),WHERE(NOT %NoMarkButtonDisable) #FOR(%Control),WHERE(%Control=%MarkControl AND NOT EXTRACT(%ControlStatement,'DISABLE')) ENABLE(%MarkControl) #<! Enable the Mark Button ENABLE(%UnmarkControl) #<! Enable the Unmark Button ENABLE(%MarkAllControl) #<! Enable the Mark All Button ENABLE(%UnmarkAllControl) #<! Enable the Unmark All Button #ENDFOR #ENDAT #!------------------------------------------------------------------------ #AT(%DisableSaveButtons,%MarkListControl),WHERE(NOT %NoMarkButtonDisable) #FOR(%Control),WHERE(%Control=%MarkControl AND NOT EXTRACT(%ControlStatement,'DISABLE')) DISABLE(%MarkControl) #<! Disable the Mark Button DISABLE(%UnmarkControl) #<! Disable the Unmark Button DISABLE(%MarkAllControl) #<! Disable the Mark All Button DISABLE(%UnmarkAllControl) #<! Disable the Unmark All Button #ENDFOR #ENDAT #!------------------------------------------------------------------------ #AT(%MultiSortOrderDeclarations) #IF(NOT %UsingRecordMarking) #INSERT(%AddPrimaryKeyFieldToQueue) #SET(%UsingRecordMarking,1) %[20]MarkAllFlag BYTE #<!Flag Indicating All Records Marked %[20]MarkQueueName QUEUE,PRE(%MrkPfx) #<!Queue Used to Store Marked Records %[22]PrimaryKeyField LIKE(%PrimaryKeyPfxAndField),NAME('TC_MarkKey')#<! Unique Record Id for the File %[20]Null END #<!End Queue Declaration #ENDIF #ENDAT #!------------------------------------------------------------------------ #AT(%ControlEventHandling,%MarkListControl,'AlertKey') #IF(%MarkWithSpaceBar) CASE KEYCODE() #<!Process Alert Keys for Marking OF SpaceKey #<! On Mark/Unmark Key GET(%MarkListQueue,CHOICE(%MarkListControl)) #<! Reget Current Record ID %MrkPfx:%PrimaryKeyField = %PrimaryKeyBrwField #<! Prepare to Search for Marked Record GET(%MarkQueueName,%MrkPfx:%PrimaryKeyField) #<! See if Record is Marked IF (ERROR() AND NOT %MarkAllFlag) OR | #<! (NOT ERROR() AND %MarkAllFlag) #<! IF Record is Not Marked POST(EVENT:Accepted,%MarkControl) #<! Mark the Record ELSE #<! Otherwise POST(EVENT:Accepted,%UnMarkControl) #<! Unmark the Record END #<! End If CYCLE #<! Cycle to Top of Event Loop OF ShiftSpace #<! On MarkAll/UnMarkAll Key IF NOT %MarkAllFlag #<! If Not All Records Marked Before POST(EVENT:Accepted,%MarkAllControl) #<! Mark All Records ELSE #<! Otherwise POST(EVENT:Accepted,%UnMarkAllControl) #<! Unmark All Records END #<! End If CYCLE #<! Cycle to Top of Event Loop END #<!End Case #ENDIF #ENDAT #!------------------------------------------------------------------------ #AT(%ControlEventHandling,%MarkControl,'Accepted') GET(%MarkListQueue,CHOICE(%MarkListControl)) #<!Reget Current Record ID %MrkPfx:%PrimaryKeyField = %PrimaryKeyBrwField #<!Prepare to Search for Marked Record GET(%MarkQueueName,%MrkPfx:%PrimaryKeyField) #<!See if Record is Marked IF NOT %MarkAllFlag #<!If Not Marking All Exceptions IF ERROR() #<! If Record Not Marked %MarkBrwPfx:%MarkStatusField = '%MarkedMessage' #<! Show Record as Marked in the List Box %MrkPfx:%PrimaryKeyField = %PrimaryKeyBrwField #<! Set up to Add Record to the Mark Queue ADD(%MarkQueueName,%MrkPfx:%PrimaryKeyField) #<! Add the Record to the Mark Queue PUT(%MarkListQueue) #<! Update the Changes to the List Box END #<! End If ELSE #<!Otherwise Mark Table is an Exception List IF NOT ERROR() #<! If Record Not Marked %MarkBrwPfx:%MarkStatusField = '%MarkedMessage' #<! Show Record as Marked in the List Box DELETE(%MarkQueueName) #<! Delete the Record from the Mark Queue PUT(%MarkListQueue) #<! Update the Changes to the List Box END #<! End If END #<!End If #CASE(%GotoAfterMark) #OF('Next') POST(EVENT:ScrollDown,%MarkListControl) #<!Go Back to List and Move Down 1 Record #OF('Previous') POST(EVENT:ScrollUp,%MarkListControl) #<!Go Back to List and Move Up 1 Record #ELSE #IF(%AlwaysReselectList) SELECT(%MarkListControl) #<!Go Back to List Box After Button Press #ELSE #IF(%MarkKey) IF KEYCODE() = %MarkKey THEN SELECT(%MarkListControl). #<!Reselect List When Called by Hot Key #ENDIF #ENDIF #ENDCASE #ENDAT #!------------------------------------------------------------------------ #AT(%ControlEventHandling,%UnmarkControl,'Accepted') GET(%MarkListQueue,CHOICE(%MarkListControl)) #<!Reget Current Record ID %MrkPfx:%PrimaryKeyField = %PrimaryKeyBrwField #<!Prepare to Search for Marked Record GET(%MarkQueueName,%MrkPfx:%PrimaryKeyField) #<!See if Record is Marked IF NOT %MarkAllFlag #<!If Not Marking All Exceptions IF NOT ERROR() #<! If Record is Marked %MarkBrwPfx:%MarkStatusField = '%NotMarkedMessage' #<! Show Record as Not Marked in the List Box DELETE(%MarkQueueName) #<! Delete the Record from the Mark Queue PUT(%MarkListQueue) #<! Update the Changes to the List Box END #<! End If ELSE #<!Otherwise Mark Table is an Exception List IF ERROR() #<! If Record is Marked %MarkBrwPfx:%MarkStatusField = '%NotMarkedMessage' #<! Show Record as Not Marked in the List Box %MrkPfx:%PrimaryKeyField = %PrimaryKeyBrwField #<! Set up to Add Record to the Mark Queue ADD(%MarkQueueName,%MrkPfx:%PrimaryKeyField) #<! Add the Record to the Mark Queue PUT(%MarkListQueue) #<! Update the Changes to the List Box END #<! End If END #<!End If #CASE(%GotoAfterMark) #OF('Next') POST(EVENT:ScrollDown,%MarkListControl) #<!Go Back to List and Move Down 1 Record #OF('Previous') POST(EVENT:ScrollUp,%MarkListControl) #<!Go Back to List and Move Up 1 Record #ELSE #IF(%AlwaysReselectList) SELECT(%MarkListControl) #<!Go Back to List Box After Button Press #ELSE #IF(%UnmarkKey) IF KEYCODE() = %UnmarkKey THEN SELECT(%MarkListControl). #<!Reselect List When Called by Hot Key #ENDIF #ENDIF #ENDCASE #ENDAT #!------------------------------------------------------------------------ #AT(%ControlEventHandling,%MarkAllControl,'Accepted') %MarkAllFlag = 1 #<!Mark Queue is Now an Exception List FREE(%MarkQueueName) #<!Mark All Records LOOP Rec%# = 1 TO RECORDS(%MarkListQueue) #<!Loop Through the List Boxes Records GET(%MarkListQueue,Rec%#) #<! Read the Queue Record %MarkBrwPfx:%MarkStatusField = '%MarkedMessage' #<! Show Record as Marked in the List Box PUT(%MarkListQueue) #<! Update the Changes to the List Box END #<!End Loop #IF(%AlwaysReselectList) SELECT(%MarkListControl) #<!Go Back to List Box After Button Press #ELSE #IF(%MarkAllKey) IF KEYCODE() = %MarkAllKey THEN SELECT(%MarkListControl). #<!Reselect List When Called by Hot Key #ENDIF #ENDIF #ENDAT #!------------------------------------------------------------------------ #AT(%ControlEventHandling,%UnmarkAllControl,'Accepted') %MarkAllFlag = 0 #<!Mark Queue is Now a List of Marked Records FREE(%MarkQueueName) #<!UnMark All Records LOOP Rec%# = 1 TO RECORDS(%MarkListQueue) #<!Loop Through the List Boxes Records GET(%MarkListQueue,Rec%#) #<! Read the Queue Record %MarkBrwPfx:%MarkStatusField = '%NotMarkedMessage' #<! Show Record as Not Marked in the List Box PUT(%MarkListQueue) #<! Update the Changes to the List Box END #<!End Loop #IF(%AlwaysReselectList) SELECT(%MarkListControl) #<!Go Back to List Box After Button Press #ELSE #IF(%UnmarkAllKey) IF KEYCODE() = %UnmarkAllKey THEN SELECT(%MarkListControl). #<!Reselect List When Called by Hot Key #ENDIF #ENDIF #ENDAT #!------------------------------------------------------------------------ #AT(%MarkerFillQueueCode) %MrkPfx:%PrimaryKeyField = %PrimaryKeyPfxAndField #<! Prepare to Search for Marked Record GET(%MarkQueueName,%MrkPfx:%PrimaryKeyField) #<! See if Record is Marked IF (NOT %MarkAllFlag AND NOT ERROR()) OR | #<! If Record is Marked (%MarkAllFlag AND ERROR()) #<! %MarkStatusField = '%MarkedMessage' #<! Show Record as Marked ELSE #<! Otherwise %MarkStatusField = '%NotMarkedMessage' #<! Show Record as Not Marked END #<! End If #ENDAT #!------------------------------------------------------------------------ #AT(%EndOfProcedure) FREE(%MarkQueueName) #<!Release Memory use by Mark Records Queue #ENDAT #!------------------------------------------------------------------------ #! #! #! #!=============================================================================! #! ! #! Marked Record Processing ! #! ! #!=============================================================================! #EXTENSION(MarkedRecordProcessing,'Process Only Marked Records'),PROCEDURE,REQ(PowerBrowseLibrary(ToolCraft)),HLP('~PBMarkedRecordProcessingExtension') #! #ATSTART #DECLARE(%ProcessMarkedKeyField) #CLEAR(%ProcessMarkedKeyField) #FIX(%File,%Primary) #FOR(%Key),WHERE(%KeyPrimary) #FOR(%KeyField) #SET(%ProcessMarkedKeyField,%KeyField) #ENDFOR #ENDFOR #ENDAT #!------------------------------------------------------------------------ #AT(%DeclarationSection),WHERE(%ProcessMarkedKeyField) ProcessMarked BYTE MarkAllFlag BYTE PMQ &QUEUE PMQ:Record GROUP,PRE() PMQ:%[18]ProcessMarkedKeyField LIKE(%ProcessMarkedKeyField) END #ENDAT #!------------------------------------------------------------------------ #AT(%ProcedureSetup),WHERE(%ProcessMarkedKeyField) ProcessMarked = TC:BRW:ProcessMarked IF ProcessMarked PMQ &= TC:BRW:MarkQueue MarkAllFlag = TC:BRW:MarkAllFlag END CLEAR(TC:BRW:ProcessMarked) CLEAR(TC:BRW:MarkAllFlag) #ENDAT #!------------------------------------------------------------------------ #AT(%RecordOutOfRange),WHERE(%ProcessMarkedKeyField) IF ProcessMarked PMQ:%ProcessMarkedKeyField = %ProcessMarkedKeyField PMQ = PMQ:Record GET(PMQ,'TC_MarkKey') IF (MarkAllFlag AND NOT ERROR()) OR | (NOT MarkAllFlag AND ERROR()) RecordStatus = Record:Filtered EXIT END END #ENDAT #!------------------------------------------------------------------------ #! #! #!=============================================================================! #! ! #! Call Mark Queue for Marked Record Processing ! #! ! #!=============================================================================! #CODE(CallMarkedRecordProcessing,'Setup to Call Marked Record Processing'),PROCEDURE,REQ(PowerBrowseLibrary(ToolCraft)),HLP('~PBCallMarkedRecordsProcessingCode') #! #PROMPT('Mark Queue Name:',@S25),%CallMarkQueueName,DEFAULT('MarkQueue') #VALIDATE(%CallMarkQueueName,'You Must Enter a Queue Name') #PROMPT('Mark All Flag Name:',@S50),%CallMarkAllFlag,DEFAULT('MarkAllFlag') #VALIDATE(%CallMarkAllFlag,'You Must Enter a Mark All Flag Name') #! #!------------------------------------------------------------------------ IF RECORDS(%CallMarkQueueName) TC:BRW:ProcessMarked = True TC:BRW:MarkQueue &= %CallMarkQueueName TC:BRW:MarkAllFlag = %CallMarkAllFlag ELSE TC:BRW:ProcessMarked = False END